perm filename LET.PUB[LET,JMC]7 blob sn#199787 filedate 1976-02-03 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00004 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	.<< 			Feature summary
C00005 00003	.DEVICE XGP
C00010 00004	.at "∂AIL" data "∞" ⊂
C00017 ENDMK
C⊗;
.<< 			Feature summary
.
.Start with
.require "let.pub[let,jmc]" source;
.Letterheads:	∂<type> <to>$<from>$<subject>$<date>∞
. <type> may be:
.	AIL - AI Lab Letter
.	MEM - AI Lab Memo
.	ADM - admissions letter
.	HOM - home address letter
.	SEN - Sense letter
. <from> defaults depend on <type>,
. <date> defaults to today.
. Use "↓" wherever you want a CRLF.	
.Signatures:
.	.sgn - sincerely yours, with signature according to letterhead
. 	.sgnp - sincerely yours, John McCarthy
.	.reg - best regards, with signature according to letterhead
.	.regp - best regards, with no titles
.
.Other handy macros:
.  FAC means FILL ADJUST
.  CB "<sub-heading>"  means make a centered boldface subheading.  If the
.	subheading contains any commas, be sure to enclose it in quotes.
.  BOLDIT may be called within a block to cause quoted text " ... " to
.	turn into boldface (without quotes) and broketed text < ... > to
.	be put in italics (without brokets).
.  REF may be called within a block to print "References:", then go into
.	BOLDIT mode with a format suitable for a list of references.
.
.Below is the list of addressee abbreviations.  Use as, e.g. "Dave Russell↓IPT".
.The abbreviation identifier may be up to 4 letters long.
.>>		
.ARPA←"Advanced Research Projects Agency↓"&
.  "1700 Wilson Boulevard↓Arlington, Virginia 22209";
.
.IPT←"Information Processing Techniques Office↓"&
.  "Advanced Research Projects Agency↓"&
.  "1700 Wilson Boulevard↓Arlington, Virginia 22209";
.DEVICE XGP
.bottom←53;
.page frame bottom high 85 wide
.area text lines 1 to bottom char 1 to 80;
.
.TURN ON "%{α"
.font 1 "basl30"; font 2 "basi30"; font 3 "basb30";
.AT "ffi" ⊂ IF 0<THISFONT≤3 THEN "≠"  ELSE "fαfαi" ⊃;
.AT "ffl" ⊂ IF 0<THISFONT≤3 THEN "α∞" ELSE "fαfαl" ⊃;
.AT "ff"  ⊂ IF 0<THISFONT≤3 THEN "≥"  ELSE "fαf" ⊃;
.AT "fi"  ⊂ IF 0<THISFONT≤3 THEN "α≡" ELSE "fαi" ⊃;
.AT "fl"  ⊂ IF 0<THISFONT≤3 THEN "∨"  ELSE "fαl" ⊃;
.AT "--"  ⊂ IF 0<THISFONT≤3 THEN "¬" ELSE "-α-" ⊃;
.
.at "↓";	⊂ }
.⊃;
.
.macro letter(data,aut);	⊂
.<< namad = toname↓addr1↓addr2↓...$author$subject$date$saluation>>
.before page ⊂ ⊃;
.ODDLEFTBORDER←EVENLEFTBORDER←1000;
.if going=0 then going←1 else next page;
.nofill;
.count page from 2;
.salut←"data";  foo←scan(salut," ","","XR");
.xxx←namad←scan(salut,"$","","IS");  yyy←author←scan(salut,"$","","IS");
.subject←scan(salut,"$","","IS"); dat←scan(salut,"$","","IS");
.if length(dat)≤2 then dat←date;
.if length(author)≤2 then yyy←author←"aut";
.zzz←scan(yyy,",↓");
.zzz←scan(xxx,"↓","","IS");  ln←length(zzz);
.if length(namad)>ln+3 then start
.  if length(namad)≤ln+7 then namad←zzz&"↓"&eval(xxx);
.  end;
.name←scan(zzz,",");
. ⊃
.
.macro head;	⊂ nofill; SKIP 4; select 1;
.(namad)}
.subj;
.if length(salut)>1 then start
Dear {(salut);}:

.end
.⊃
.
.macro memo;	⊂ begin "memo"
.skip 3;
.fill; nojust; indent 0,8; crbreak; tabs 9; turn on "\%";
.xxx←namad;  nam←scan(xxx,"↓");
To:\%1{nam}

%3From:\%1{author}
.end "memo";
.subj;
.⊃
.
.macro subj;	⊂
.fac;
.if length(subject)>2 then BEGIN "subject" turn on "%∂"; nojust; indent 0,8;crbreak;
%3Subject:∂9%1{subject}

.end "subject";
.before page	⊂ once turn on "%→←"; select 3;
.name}←{dat}→Page {page!}%*
.skip;
.    ⊃
.select 1;
.  ⊃
.
.macro ref ⊂ select 3; nojust; boldit;
References:
.select 1; indent 0,8;
. ⊃
.
.macro sgn; ⊂ BEGIN "signed" SKIP 2; NOFILL; group;
Sincerely,
.SKIP 3;
{author}
.END "signed"; ⊃
.
.macro sgnp; ⊂ BEGIN "signedplain" SKIP 2; NOFILL; group;
Sincerely,
.SKIP 2;
John McCarthy
.END "signedplain"; ⊃
.
.macro reg; ⊂BEGIN "regards" SKIP 2; NOFILL; group;
Best regards,
.SKIP 3;
{author}
.END "regards"; ⊃
.
.macro regp; ⊂BEGIN "regardsplain" SKIP 2; NOFILL; group;
Best regards,
.SKIP 3;
John McCarthy
.END "regardsplain"; ⊃
.
.MACRO FAC ⊂ FILL ADJUST ⊃
.
.macro cb(head) ⊂ if lines<5 then next page else skip; once center; select 3
head

.⊃
.
.macro boldit ⊂ turn on "%";
.  at """" ⊂ (if thisfont=1 then "%3" else "%1") ⊃;
.  at "<" ⊂"%2"⊃; at ">" ⊂"%1"⊃;
.⊃
.at "∂AIL" data "∞"; ⊂
.letter(|data|,|John McCarthy↓Director↓Professor of Computer Science|);
.if on4=0 then start on4←1; FONT 4 "STA200"; end;
.if on5=0 then start on5←1; FONT 5 "NGB25"; end;
%4S%5 Artificial Intelligence Laboratory, STANFORD UNIVERSITY, Stanford, California 94305
.xgenlines←-4;
.once turn on "→"
Telephone 415 497-4430→{dat}
.head;
.⊃
.
.at "∂HOM" data "∞"; ⊂
.letter(|data|,|John McCarthy|);
.if on5=0 then start on5←1; FONT 5 "NGB25"; end;
.begin select 5; center;
846 Lathrop Drive
Stanford, California 94305
.nofill; turn on "→"
Telephone 415 321-7580→{dat}
.head;
.end
.⊃
.
.AT "∂MEM" data "∞"	⊂
.letter("data",
."John McCarthy, Director, Artificial Intelligence Lab.");
.if on6=0 then start on6←1; font 6 "micr25"; end;
.if on7=0 then start on7←1; font 7 "ngb30";  end;
.SELECT 6; CENTER;
OFFICE MEMORANDUM  *  STANFORD UNIVERSITY  *  OFFICE MEMORANDUM
.SKIP; SELECT 7;
STANFORD ARTIFICIAL INTELLIGENCE LABORATORY
.SELECT 3; SKIP;
{DAT}
.memo;
.⊃
.
.at "∂SEN" data "∞"; ⊂
.letter(|data|,|John McCarthy↓Chairman, Stanford Chapter of SENSE↓Professor of Computer Science|);
.if on5=0 then start on5←1; FONT 5 "NGB25"; end;
.if on7=0 then start on7←1; font 7 "ngb30";  end;
.if on8=0 then start on 8←1; font 8 "ngb15"; end;
.begin center;
%7 SENSE
%8 (Scientists for Enlightenment on Nuclear Sources of Energy)
.end
.skip
%5 Artificial Intelligence Laboratory, STANFORD UNIVERSITY, Stanford, California 94305
.xgenlines←-4;
.once turn on "→"
Telephone 415 497-4430→{dat}
.head;
.⊃
.
.
.at "∂ADM" data "∞"; ⊂
.letter(|data|,|John McCarthy↓Chairman of Admissions 1976↓Professor of Computer Science|);
.if on4=0 then start on4←1; FONT 4 "STA200"; end;
.if on5=0 then start on5←1; FONT 5 "NGB25"; end;
%4S%5 Computer Science Department, STANFORD UNIVERSITY, Stanford, California 94305
.xgenlines←-4;
.once turn on "→"
Telephone 415 497-4430→{dat}
.head;
.⊃
.going←on4←on5←0;  on6←on7←on8←on9←0;
.portion main;  place text;